<html>
<head><meta charset="utf-8"><title>Does 32-bit x86 + AVX happen? · project-portable-simd · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/index.html">project-portable-simd</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html">Does 32-bit x86 + AVX happen?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="211566314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566314">(Sep 29 2020 at 00:03)</a>:</h4>
<p>Like... as far as I can tell this is not a thing, and i686 caps out somewhere amidst SSE? Mildly perplexed rn.</p>



<a name="211566414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566414">(Sep 29 2020 at 00:04)</a>:</h4>
<p>Yes, because you can run an x86-64 CPU in 32-bit mode</p>



<a name="211566423"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566423" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566423">(Sep 29 2020 at 00:04)</a>:</h4>
<p>There are no actual x86 CPUs with AVX</p>



<a name="211566460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566460">(Sep 29 2020 at 00:05)</a>:</h4>
<p>okay, but isn't that target x86_32?</p>



<a name="211566573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566573">(Sep 29 2020 at 00:06)</a>:</h4>
<p>also, is an x86_64 CPU in 32-bit mode actually capable of using AVX instructions?</p>



<a name="211566593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566593">(Sep 29 2020 at 00:07)</a>:</h4>
<p>I noticed there's a <code>32bit-mode</code> target feature for <code>x86_64</code> targets but it seemed to segfault for me on Windows <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="211566689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566689">(Sep 29 2020 at 00:08)</a>:</h4>
<p>I don't think there is an x86_32 target?</p>



<a name="211566753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566753">(Sep 29 2020 at 00:09)</a>:</h4>
<p>I believe x86-64 processors in 32-bit mode can use all extensions (CPUID is the same, anyway) and this was relevant in the early 64-bit days when people still used 32-bit operating systems because that's what was around</p>



<a name="211566821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566821">(Sep 29 2020 at 00:10)</a>:</h4>
<p>32-bit windows vista and 7 were definitely a thing and coexisted with AVX</p>



<a name="211566860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211566860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211566860">(Sep 29 2020 at 00:11)</a>:</h4>
<p>define "coexisted with" here because it doesn't have to mean "support" &lt;_&lt;</p>



<a name="211567121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567121">(Sep 29 2020 at 00:14)</a>:</h4>
<p>Well, I'm pretty sure 32-bit mode only affects memory addressing</p>



<a name="211567181"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567181" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567181">(Sep 29 2020 at 00:15)</a>:</h4>
<p>well and 64-bit GP registers</p>



<a name="211567473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567473">(Sep 29 2020 at 00:20)</a>:</h4>
<p>well I found the opposite.  knight's landing CPUs (the first with AVX-512) have AVX-512 but no MMX or SSE</p>



<a name="211567499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567499">(Sep 29 2020 at 00:20)</a>:</h4>
<p><span aria-label="eyes" class="emoji emoji-1f440" role="img" title="eyes">:eyes:</span> Interesting.</p>



<a name="211567512"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567512" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567512">(Sep 29 2020 at 00:20)</a>:</h4>
<p>do they support SSE2?</p>



<a name="211567516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567516">(Sep 29 2020 at 00:21)</a>:</h4>
<p>nope, they have no xmm registers at all</p>



<a name="211567525"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567525" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567525">(Sep 29 2020 at 00:21)</a>:</h4>
<p>only ymm and zmm</p>



<a name="211567545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567545">(Sep 29 2020 at 00:21)</a>:</h4>
<p>wow, so if you give them an sse2 instruction they'll <span aria-label="duck" class="emoji emoji-1f986" role="img" title="duck">:duck:</span>ing explode? awesome.</p>



<a name="211567609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567609">(Sep 29 2020 at 00:22)</a>:</h4>
<p>yep. so you actually have to compile any code for them specially since scalar float math will use sse :)</p>



<a name="211567678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567678">(Sep 29 2020 at 00:23)</a>:</h4>
<p>hekkin intel</p>



<a name="211567679"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567679" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567679">(Sep 29 2020 at 00:23)</a>:</h4>
<p>love it</p>



<a name="211567681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567681">(Sep 29 2020 at 00:23)</a>:</h4>
<p>I suggest the approach we take is "test some targets that represent existing hardware and leave the actual target arguments to the folks working on the compiler"</p>



<a name="211567748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Caleb Zulawski <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567748">(Sep 29 2020 at 00:24)</a>:</h4>
<p>since it appears nearly anything is possible if a manufacturer decides to do it</p>



<a name="211567758"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211567758" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211567758">(Sep 29 2020 at 00:24)</a>:</h4>
<p>Sure Is.</p>



<a name="211568924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257879-project-portable-simd/topic/Does%2032-bit%20x86%20%2B%20AVX%20happen%3F/near/211568924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/257879-project-portable-simd/topic/Does.2032-bit.20x86.20.2B.20AVX.20happen.3F.html#211568924">(Sep 29 2020 at 00:44)</a>:</h4>
<p>I mean, I'm not toooooo concerned about someone taking a Xeon Phi and miscompiling something thinking it's good for both their Xeon Phi supercomputer and their other Intel supercomputers but really? REALLY, Intel? &lt;_&lt;</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>